package cz.muni.fi.pb138.avradiation.visualisation.chart;

import cz.muni.fi.pb138.avradiation.Sensor.Sensor;
import java.awt.image.BufferedImage;
import java.util.List;

/**
 * Drawing XY chart from measured values in sensor(s)
 * Image is created as buffered image
 *
 * @author Vladimir Cerven <v.cerven@gmail.com>
 */
public interface ChartXY {

    /**
     * Draw chart from values in one sensor.
     * Chart has default width and height
     *
     * @param sensor Sensor with measured values
     * @return BufferedImage with chart
     */
    BufferedImage drawChart(Sensor sensor);

    /**
     * Draw chart from values in one sensor
     * Chart has selected width and height
     *
     * @param sensor Sensor with measured values
     * @param width Width of chart
     * @param height Height of chart
     * @return BufferedImage with chart
     */
    BufferedImage drawChart(Sensor sensor, int width, int height);

    /**
     * Draw chart from values in List of sensors
     * Chart has default width and height
     *
     * @param sensors List of Sensors with measured values
     * @return BufferedImage with chart
     */
    BufferedImage drawChart(List<Sensor> sensors);

    /**
     * Draw chart from values in List of sensors
     * Chart has selected width and height
     *
     * @param sensors List of Sensors with measured values
     * @param width Width of chart
     * @param height Height of chart
     * @return BufferedImage with chart
     */
    BufferedImage drawChart(List<Sensor> sensors, int width, int height);
}
